package com.vhans.db.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vhans.core.domain.AFile;
import com.vhans.db.model.dto.ConditionDTO;
import com.vhans.db.model.dto.file.FolderDTO;
import com.vhans.db.model.vo.file.FileVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件业务接口
 *
 * @author vhans
 */
public interface IAFileService extends IService<AFile> {

    /**
     * 查看文件列表
     *
     * @param condition 查询条件
     * @return 文件列表
     */
    List<FileVO> listFileVOList(ConditionDTO condition);

    /**
     * 上传文件
     *
     * @param file 文件
     * @param path 文件路径
     */
    void uploadFile(MultipartFile file, String path);

    /**
     * 创建文件夹
     *
     * @param folder 文件夹信息
     */
    void createFolder(FolderDTO folder);

    /**
     * 删除文件
     *
     * @param fileIdList 文件id列表
     */
    void deleteFile(List<Integer> fileIdList);

    /**
     * 下载文件
     *
     * @param fileId 文件id
     */
    void downloadFile(Integer fileId);

    /**
     * 采用策略上传文件
     *
     * @param file     文件
     * @param path     上传路径
     * @param fileType 文件类型
     * @return 文件url
     */
    String uploadStrategyFile(MultipartFile file, String path, String fileType);
}
